/***Intro***/ MemoryManager Memory ResourceManager Resource
Intro(2m)

【名前】
	Intro - Toolbox: Memory/Resource（man2m.hlp）

【概要】

【Inside Macintosh】
								<<キーワード>>
								MemoryManager
	Memory Manager
		II-7
		IV-77
		VI-28(Part 3)	一時メモリ, 仮想記憶, 32Bit アドレッシング

	Resource Manager					ResourceManager
		I-101
		IV-15
		V-29		RGetResource() 追加
		VI-13(Part 2)	部分リソースのRead/Write, FSでのファイル操作

	リソースの一覧(ResList)

【関連項目】

【ヘッダー】
	Types.h

	Memory.h
	Resources.h
/***Memory***/ Ptr Handle MemoryManager
Memory(2m)

【名前】
	Memory - Macintosh Toolbox ルーチン: メモリーマネージャー

【概要】
	Mem_Init	初期化処理
	Zone		ヒープゾーン
	Handle		再配置可能なメモリブロックを管理するもの
	Ptr		再配置不可能はメモリブロックを示すポインタ

【解説】
	■Ptr, Handle
	  Ptr		char *
	  Handle	Ptr *


【ルーチン】
	Initialization and Allocation
		InitApplZone	InitZone	MoreMasters
		SetApplBase	MaxApplZone	GetApplLimit
		SetApplLimit

	Heap Zone Access
		GetZone		SetZone		SystemZone
		ApplicZone

	Allocationg and Releasing Relocatable Blocks
		NewHandle	DisposHandle
		GetHandleSize	SetHandleSize
		HandleZone	RecoverHandle	ReallocHandle
		NewEmptyHandle
		(NewHandleSys	NewHandleClear NewHandleSysCle
		NewEmptyHandleSysar)

	Allocationg and Releasing Nonrelocatable Blocks
		NewPtr		DisposPtr	GetPtrSize
		SetPtrSize	PtrZone
		(NewPtrSys NewPtrClear NewPtrSysClear)

	Freeing Spacw in the Heap
		FreeMem		MaxMem		CompactMem
		ResrvMem	PurgeMem	EmptyHandle

	Properties of Relocatable Blocks
		HLock		HUnlock
		HPurge		HNoPurge	HLockHi

	Grow Zone Operation
		SetGrowZone	GZSaveHnd

	その他
		BlockMove	TopMem		MoveHHi
		MemError

	IV で追加
		MaxBlock	PurgeSpace	StackSpace
		(MaxBlockSys)

		HSetRBit	HClrRBit
		HGetState	HSetState

【関連項目】

【Inside Macintosh】
	Memory Manager
		II-7
		IV-77
		VI-28(Part 3)	一時メモリ, 仮想記憶, 32Bit アドレッシング
#
#
#
/***OSType***/ OSTypePtr ResType ResTypePtr Style ScriptCode LangCode Byte SignedByte Boolean ProcPtr ProcHandle Str255 Str63 Str32 Str31 Str27 Str15 StringPtr StringHandle VHSelect
OSErr(2m)

【名前】
	OSErr   - 基本のデータタイプ
	OSType  - data type (unsigned long)
	ResType - data type (unsigned long)
	Style   - data type (unsigned char)
	ProcPtr - data type (void *)
	Str255  - data type (unsigned char [256])

【形式】
	■OSType	I-??
		OSType		ulong
		OSTypePtr	OSType *

	■ResType	I-107
		ResType		ulong
		ResTypePtr	ResType *

	■Boolean,Byte,SignedByte
		Boolean		uchar
		Byte		uchar
		SignedByte	char

	■Style		I-152
	  	Style	uchar

		ScriptCode	short
		LangCode	short

	■ProcPtr	I-78
		ProcPtr		void *
		ProcHandle	ProcPtr *

	■Str255	I-78
		Str255		uchar	[256]
		Str63		uchar	[64]
		Str32		uchar	[33]
		Str31		uchar	[32]
		Str27		uchar	[28]
		Str15		uchar	[16]
		StringPtr	uchar *
		StringHandle	uchar **

	■VHSelect	I-139
		VHSelect	uchar
#
#
#
/***InitApplZone***/ InitZone MoreMasters SetApplBase MaxApplZone GetApplLimit SetApplLimit GetZone SetZone SystemZone ApplicZone MaxBlock MaxBlockSys PurgeSpace StackSpace MemoryManager
InitApplZone(2m)

【名前】
	InitApplZone - Appl-Heap の初期化
	InitZone     - 新しいヒープゾーンの作成
	SetApplBase  - Appl-Heap の先頭を設定
	MoreMasters  - マスタポインタ用のメモリーブロック確保
	MaxApplZone  - Appl-Heap ゾーンを最大にする
	GetApplLimit - Appl-Heap の上限を設定
	SetApplLimit - Appl-Heap の上限を設定
	GetZone      - Curr-Heap Zone ポインタを取得
	SetZone      - Curr-Heap Zone の設定
	SystemZone   - System-Zone の取得
	ApplicZone   - Appl-Zone の取得
	MaxBlock    - ヒープを圧縮して得られる空きのサイズを算出
	MaxBlockSys -
	PurgeSpace  - パージによって得られる空間の算出
	StackSpace  - スタックの空き容量の取得

【書式】
	■InitApplZone	II-28
	■InitZone	II-29
	■MoreMasters	II-31
	■SetApplBase	II-28
	■MaxApplZone	II-30; IV-77, 83
	■GetApplLimit	II-29
	■SetApplLimit	II-30

	■GetZone	II-31
	■SetZone	II-31
	■SystemZone	II-32
	■ApplicZone	II-32

	■MaxBlock	IV-77
	■MaxBlockSys	??
	■PurgeSpace	IV-77
	■StackSpace	IV-78

	void	InitApplZone(void);
		アプリケーションヒープの初期化

	void	InitZone(GrowZoneProcPtr pgrowZone, short cmoreMasters,
			void *limitPtr, void *startPtr);

		新しいヒープゾーンの作成
		  startPtrに先頭バイト、limitPtrに最終バイト+1を渡します。
		  pGrowZoneにはグローゾーンポインタを渡します

	void	MoreMasters(void);
		マスタポインタ用のメモリーブロックをあらたに確保します

	void	SetApplBase(Ptr startPtr);
		アプリケーションヒープの先頭をstartPtrにします

	void	MaxApplZone(void);
		アプリケーションヒープゾーンを最大にする
		  アプリケーションピープを SetApplLimit() で設定したものにする

	Ptr	GetApplLimit();
	void	SetApplLimit(Ptr zoneLimit);
		アプリケーションピープの上限をzonelimitのアドレスにする

	THz	GetZone(void);
	void	SetZone(THz hz);
	THz	SystemZone(void);
	THz	ApplicZone(void);

	long	MaxBlock(void);
	long	MaxBlockSys(void);
			ヒープを圧縮して得られる空きのサイズを算出します

	void	PurgeSpace(long *total, long *contig);
			total	一般的はpurgeによって得られる空間の総量
			contig	purgeによって得られる最大連続空間

	long	StackSpace(void);
/***NewHandle***/ DisposHandle GetHandleSize SetHandleSize HandleZone RecoverHandle ReallocHandle NewEmptyHandle NewHandleSys NewHandleClear NewHandleSysClear RecoverHandleSys NewEmptyHandleSys MemoryManager
NewHandle(2m)

【名前】
	NewHandle         - ハンドルの取得
	DisposHandle      - ハンドルの解放
	GetHandleSize     - ハンドルのバイト数を取得
	SetHandleSize     - ハンドルのリサイズ
	HandleZone        - ハンドルの属する Zone を取得
	RecoverHandle     - ポインタが示すメモリ領域の指すハンドルを得る
	ReallocHandle     - メモリを新たに確保する
	NewEmptyHandle    - 空のHandleを作成します(ユーザーは通常使わない)
	NewHandleClear    -
	NewHandleSys      -
	NewHandleSysClear -
	RecoverHandleSys  -
	NewEmptyHandleSys -

【書式】
	■NewHandle		II-32; I-76, 80
	■DisposHandle		II-33; I-76, 80
	■GetHandleSize		II-33
	■SetHandleSize		II-34
	■HandleZone		II-34
	■RecoverHandle		II-35
	■ReallocHandle		II-35

	■NewEmptyHandle	IV-78

	■NewHandleClear
	■NewHandleSys
	■NewHandleSysClear
	■RecoverHandleSys


	Handle	NewHandle(Size byteCount);
			指定バイトのハンドルを作成する

	void	DisposHandle(Handle h);

	Size	GetHandleSize(Handle h);
	void	SetHandleSize(Handle h, Size newSize);

	THz	HandleZone(Handle h);

	Handle	RecoverHandle(Ptr p);

	void	ReallocHandle(Handle h, Size byteCount);
			hにlogicalSize新たに確保する

	Handle	NewEmptyHandle(void);

	Handle	NewHandleClear(Size byteCount);
	Handle	NewHandleSys(Size byteCount);
	Handle	NewHandleSysClear(Size byteCount);
	Handle	NewEmptyHandleSys(void);
	Handle	RecoverHandleSys(Ptr p);
/***NewPtr***/ NewPtrSys NewPtrClear NewPtrSysClear DisposPtr GetPtrSize SetPtrSize PtrZone MemoryManager
NewPtr(2m)

【名前】
	NewPtr         - ポインタの作成
	DisposPtr      - ポインタの解放
	GetPtrSize     - ポインタのバイト数を取得
	SetPtrSize     - ポインタのリサイズ
	PtrZone        - ポインタを含むヒープゾーンの取得
	NewPtrClear    -
	NewPtrSys      -
	NewPtrSysClear -

【書式】
	■NewPtr	II-36; I-75, 79
	■DisposPtr	II-36; I-75, 79
	■GetPtrSize	II-37
	■SetPtrSize	II-37
	■PtrZone	II-37
	■NewPtrClear
	■NewPtrSys
	■NewPtrSysClear

	Ptr	NewPtr(Size byteCount);

	void	DisposPtr(Ptr p);

	Size	GetPtrSize(Ptr p);
	void	SetPtrSize(Ptr p, Size newSize);

	THz	PtrZone(Ptr p);

	Ptr	NewPtrClear   (Size byteCount);
	Ptr	NewPtrSys     (Size byteCount);
	Ptr	NewPtrSysClear(Size byteCount);
/***FreeMem***/ MaxMem CompactMem ResrvMem PurgeMem EmptyHandle FreeMemSys MaxMemSys CompactMemSys PurgeMemSys  MemoryManager
FreeMem(2m)

【名前】
	FreeMem       - 現在のヒープの空きの合計を返します
	MaxMem        - 現在のヒープを圧縮（パージ可能なものをパージ）
	CompactMem    - 現在のヒープを圧縮（パージ可能なものでもパージしない）
	ResrvMem      - ゾーンの下位アドレスに指定バイトの空きスペースを生成
	PurgeMem      - 指定バイト空きができるまでパージを繰り返す
	EmptyHandle   - ハンドルパージしてnilにします
	FreeMemSys    -
	MaxMemSys     -
	CompactMemSys -
	PurgeMemSys   -

【書式】
	■FreeMem	II-38
	■MaxMem	II-38
	■CompactMem	II-39
	■ResrvMem	II-39
	■PurgeMem	II-39
	■EmptyHandle	II-40

	■FreeMemSys
	■MaxMemSys
	■CompactMemSys
	■PurgeMemSys

	long	FreeMem(void);

	Size	MaxMem(Size *grow);
			現在のヒープを圧縮（パージ可能なものをパージ）

	Size	CompactMem(Size cbNeeded);
			現在のヒープを圧縮（パージ可能なものでもパージしない）

	void	ResrvMem(Size cbNeeded);
	void	PurgeMem(Size cbNeeded);

	void	EmptyHandle(Handle h);
			hをパージしてnilにします


	long	FreeMemSys(void);
	Size	MaxMemSys(Size *grow);
	Size	CompactMemSys(Size cbNeeded);
	void	PurgeMemSys(Size cbNeeded);
/***HLock***/ HUnlock HPurge HNoPurge HLockHi HSetRBit HClrRBit HGetState HSetState MemoryManager
HLock(2m)

【名前】
	HLock     - ハンドルのロック
	HUnlock   - ハンドルのアンロック
	HPurge    - ハンドルをパージ可能に
	HNoPurge  - ハンドルをパージ不可に
	HLockHi   - ??
	HSetRBit  - リソースフラグビットをセット
	HClrRBit  - リソースフラグビットをクリア
	HGetState - フラグバイトの取得
	HSetState - フラグバイトの設定

【書式】
	■HLock		II-40
	■HUnlock	II-41
	■HPurge	II-41
	■HNoPurge	II-41
	■HLockHi	??
	■HSetRBit	IV-79
	■HClrRBit	IV-79
	■HGetState	IV-80
	■HSetState	IV-80

	void	HLock  (Handle h);
	void	HUnlock(Handle h);

	void	HPurge  (Handle h);
	void	HNoPurge(Handle h);

	void	HLockHi(Handle h);

	void	HSetRBit(Handle h);
	void	HClrRBit(Handle h);

	char	HGetState(Handle h);
	void	HSetState(Handle h, char flags);
/***SetGrowZone***/ GZSaveHnd MemoryManager
SetGrowZone(2m)

【名前】
	SetGrowZone - カレントヒープのグローゾーン関数の設定
	GZSaveHnd   -

【書式】
	■SetGrowZone	II-42
	■GZSaveHnd	II-43

	void	SetGrowZone(GrowZoneProcPtr growZone);
			pascal long myGrowZone(Size cbNeeded);

		の形で、cbNeeded 空けて下さい。少しでも得たときは、0以外の
		値を、だめだったら、0を渡してください

	Handle	GZSaveHnd(void);
/***BlockMove***/ TopMem MoveHHi MemError MemoryManager
BlockMove(2m)

【名前】
	BlockMove - メモリ内容のコピー(重なりOK)
	TopMem    - RAM 最終アドレスの取得
	MoveHHi   - ハンドルをできるだけ上の方へ動かす
	MemError  - Memory Manager ルーチンの最後に呼ばれたresult code を返す

【書式】
	■BlockMove	II-44
	■TopMem	II-44
	■MoveHHi	II-44; IV-77, 83
	■MemError	II-44

	void	BlockMove(const void *srcPtr, void *destPtr, Size byteCount);

	Ptr	TopMem(void);

	void	MoveHHi(Handle h);

	OSErr	MemError(void);
/***SwapMMUMode***/ GetMMUMode StripAddress Translate24To32 MemoryManager
SwapMMUMode(2m)

【名前】
	SwapMMUMode     -
	GetMMUMode      -
	StripAddress    -
	Translate24To32 -

【書式】
	■SwapMMUMode		V-593 (OS Utilities)
	■GetMMUMode		V-593 (OS Utilities)
	■StripAddress		V-593 (OS Utilities), VI-28-16
	■Translate24To32	VI-28-16

	void	SwapMMUMode(char *mode);
	char	GetMMUMode(void);
			false32b = 0	24-bit addressing mode
			true32b = 1	32-bit addressing mode

	Ptr	StripAddress(void *theAddress);

	Ptr	Translate24To32(void *addr24);
/***HoldMemory***/ UnholdMemory LockMemory LockMemoryContiguous UnlockMemory GetPhysical MemoryBlock LogicalToPhysicalTable MemoryManager
HoldMemory(2m)

【名前】
	HoldMemory           -
	UnholdMemory         -
	LockMemory           -
	LockMemoryContiguous -
	UnlockMemory         -
	GetPhysical          -
	MemoryBlock            - data type
	LogicalToPhysicalTable - data type

【書式】
	■	VI-28-26～

	OSErr	HoldMemory(void *address, unsigned long count);
	OSErr	UnholdMemory(void *address, unsigned long count);

	OSErr	LockMemory(void *address, unsigned long count);
	OSErr	LockMemoryContiguous(void *address, unsigned long count);
	OSErr	UnlockMemory(void *address, unsigned long count);

	OSErr	GetPhysical(LogicalToPhysicalTable *addresses,
			unsigned long *physicalEntryCount);

	■MemoryBlock	VI-28-21
	  MemoryBlock
		void	*address;
		unsigned long count;

	■LogicalToPhysicalTable	VI-28-22
	  LogicalToPhysicalTable
		MemoryBlock	logical;
		MemoryBlock	physical[defaultPhysicalEntryCount];

		defaultPhysicalEntryCount = 8
/***DeferUserFn***/ MemoryManager
DeferUserFn(2m)

【名前】
	DeferUserFn -

【書式】
	■DeferUserFn	VI-28-30

	OSErr	DeferUserFn(ProcPtr userFunction, void *argument);
/***Debugger***/ DebugStr SysBreak SysBreakStr SysBreakFunc MemoryManager
Debugger(2m)

【名前】
	Debugger     -
	DebugStr     -
	SysBreak     -
	SysBreakStr  -
	SysBreakFunc -

【形式】
	void	Debugger(void);
	void	DebugStr(ConstStr255Param aStr);

	void	SysBreak(void);
	void	SysBreakStr(ConstStr255Param debugStr);
	void	SysBreakFunc(ConstStr255Param debugFunc);
/***DebuggerGetMax***/ DebuggerEnter DebuggerExit DebuggerPoll GetPageState PageFaultFatal DebuggerLockMemory DebuggerUnlockMemory PageState EnterSupervisorMode StatusRegisterContents  MemoryManager
DebuggerGetMax(2m)

【名前】
	DebuggerGetMax       -
	PageFaultFatal       -
	DebuggerLockMemory   -
	DebuggerUnlockMemory -
	DebuggerEnter        -
	DebuggerExit         -
	DebuggerPoll         -
	GetPageState         -
	EnterSupervisorMode  -

【書式】
	■デバッガサポート	VI-28-23 ～
	■デバッガルーチン	VI-28-30 ～

	long	DebuggerGetMax(void);
	Boolean	PageFaultFatal(void);
	OSErr	DebuggerLockMemory(void *address, unsigned long count);
	OSErr	DebuggerUnlockMemory(void *address, unsigned long count);

	void	DebuggerEnter(void);
	void	DebuggerExit(void);
	void	DebuggerPoll(void);

	PageState GetPageState(const void *address);
			0 = kPageInMemory RAM内にページがある
			1 = kPageOnDisk   ディスク上にページがある
			2 = kNotPaged     アドレスはページングの対象でない

	■PageState	VI-28-26
		PageState	short


	■EnterSupervisorMode		VI-28-25
	StatusRegisterContents	EnterSupervisorMode(void);

	■StatusRegisterContents	VI-28-25
		StatusRegisterContents	short
/***TempFreeMem***/ TempMaxMem TempNewHandle TempHLock TempHUnlock TempDisposeHandle TempTopMem MFMaxMem MFFreeMem MFTopMem MFTempNewHandle MFTempHLock MFTempHUnlock MFTempDisposHandle MemoryManager
TempFreeMem(2m)

【名前】
	TempFreeMem        -
	TempMaxMem         -
	TempNewHandle      -
	TempHLock          - System6.0 用
	TempHUnlock        - System6.0 用
	TempDisposeHandle  - System6.0 用
	TempTopMem         - Gestalt: gestaltLogicalRamSize で行える
	MFMaxMem           - System 6.0 の MultiFinder 下での関数
	MFFreeMem          -
	MFTopMem           -
	MFTempNewHandle    -
	MFTempHLock        -
	MFTempHUnlock      -
	MFTempDisposHandle -

【書式】
	■テンポラリメモリの説明	VI-28-33
	■VI-28-38
	Size	TempMaxMem(Size *grow);
	long	TempFreeMem(void);
	Handle	TempNewHandle(Size logicalSize, OSErr *resultCode);

	■VI-28-39, 37	
	void	TempHLock(Handle h, OSErr *resultCode);
	void	TempHUnlock(Handle h, OSErr *resultCode);
	void	TempDisposeHandle(Handle h, OSErr *resultCode);
	Ptr	TempTopMem(void);

	<< System 6.0 での互換関数 >>
	MFMaxMem		→ TempMaxMem
	MFFreeMem		→ TempFreeMem
	MFTopMem		→ TempTopMem
	MFTempNewHandle		→ TempNewHandle
	MFTempHLock		→ TempHLock
	MFTempHUnlock		→ TempHUnlock
	MFTempDisposHandle	→ TempDisposeHandle
/***Size***/ Zone THz MemoryManager
Size(2m)

【名前】
	Size - data type
	Zone - data type(ゾーン)

【形式】
	■Size	II-18
		Size		long

	■Zone	II-22
	  Zone
		Ptr	bkLim;
		Ptr	purgePtr;
		Ptr	hFstFree;
		long	zcbFree;
		GrowZoneProcPtr	gzProc;
		short	moreMast;
		short	flags;
		short	cntRel;
		short	maxRel;
		short	cntNRel;
		short	maxNRel;
		short	cntEmpty;
		short	cntHandles;
		long	minCBFree;
		ProcPtr	purgeProc;
		Ptr	sparePtr;
		Ptr	allocPtr;
		short	heapData;
	  THz	Zone *
#
#
#
/***InitResources***/ ResError RsrcZoneInit CurResFile ResourceManager
InitResources(2m)

【名前】
	InitResources - リソースマネージャの初期化
	ResError      - 直前に実行されたエラーコードの取得
	RsrcZoneInit  - 前のアプリケーションの使用していたリソースを全てクリア
	CurResFile    - カレントリソースファイル参照番号の取得

【書式】
	■InitResources	I-114
	■ResError	I-116
	■RsrcZoneInit	I-114
	■CurResFile	I-116

	short	InitResources(void);
		リソースマネージャの初期化
		  このルーチンはシステムから起動時に自動的に呼び出されるので、
		  アプリケーションから呼び出さなくてもよい

	short	ResError(void);

	void	RsrcZoneInit(void);

	short	CurResFile(void);
			カレントリソースファイルの参照番号を返します
/***CreateResFile***/ OpenResFile OpenRFPerm UseResFile CloseResFile GetResFileAttrs SetResFileAttrs SetResLoad HOpenResFile HCreateResFile FSpOpenResFile FSpCreateResFile ResourceManager
CreateResFile(2m)

【名前】
	CreateResFile    - リソースファイルの作成
	HCreateResFile   -
	FSpCreateResFile -
	OpenResFile      - リソースファイルのオープン
	OpenRFPerm       -
	HOpenResFile     -
	FSpOpenResFile   -
	CloseResFile     - リソースファイルのクローズ
	UseResFile       - カレントリソースファイルの変更
	GetResFileAttrs  - リソースファイルの属性取得
	SetResFileAttrs  - リソースファイルの属性設定
	SetResLoad       -

【書式】
	■CreateResFile		I-114
	■OpenResFile		I-115
	■OpenRFPerm		IV-17
	■CloseResFile		I-115
	■UseResFile		I-117

	■GetResFileAttrs	I-127
	■SetResFileAttrs	I-127
	■SetResLoad		I-118

	■HOpenResFile
	■HCreateResFile

	■FspOpenResFile
	■FspCreateResFile

	void	CreateResFile(ConstStr255Param fileName);
	void	HCreateResFile(short vRefNum, long dirID,
				ConstStr255Param fileName);
	void	FSpCreateResFile(const FSSpec *spec, OSType creator,
				OSType fileType, ScriptCode scriptTag);
			リソースファイルの作成

	short	OpenResFile  (ConstStr255Param fileName);
	short	OpenRFPerm   (ConstStr255Param fileName, short vRefNum,
						char permission);
	short	HOpenResFile(short vRefNum, long dirID,
				ConstStr255Param fileName, char permission);
	short	FSpOpenResFile(const FSSpec *spec, SignedByte permission);
			戻り値: ファイル参照番号
			permission: ファイルの書き込み、読みだし状態

	void	CloseResFile(short refNum);
			リソースファイルのクローズ

	void	UseResFile(short refNum);
			カレントリソースを指定参照番号のファイルに設定します

	short	GetResFileAttrs(short refNum);
	void	SetResFileAttrs(short refNum, short attrs);

	void	SetResLoad(Boolean load);
			loadがTRUEなら、まだ読み込まれていないリソースを改めて
			読み込む
/***CountTypes***/ Count1Types GetIndType Get1IndType CountResources Count1Resources GetIndResource Get1IndResource GetResource Get1Resource GetNamedResource Get1NamedResource UniqueID Unique1ID RGetResource ResourceManager
CountTypes(2m)

【名前】
	GetResource       - リソースの読込み
	Get1Resource      - リソースの読込み(先頭ファイル)
	RGetResource      - リソースの読込み(ROM)
	GetNamedResource  - リソースの読込み(名前)
	Get1NamedResource - リソースの読込み(名前,先頭ファイル)
	GetIndResource	  - リソースの読込み(index)
	Get1IndResource   - リソースの読込み(index,先頭ファイル)
	CountTypes        - リソースタイプ数の取得
	Count1Types       - リソースタイプ数の取得(先頭ファイル)
	GetIndType        - 指定番号のリソースタイプの取得
	Get1IndType       - 指定番号のリソースタイプの取得(先頭ファイル)
	CountResources	  - 指定タイプのリソース数の取得
	Count1Resources   - 指定タイプのリソース数の取得(先頭ファイル)
	UniqueID          - リソースの空いているIDの取得
	Unique1ID         - リソースの空いているIDの取得(先頭ファイル)

【書式】
	■GetResource		I-119
	■Get1Resource		IV-16
	■RGetResource		V-30
	■GetNamedResource	I-119
	■Get1NamedResource	IV-15
	■GetIndResource	I-118
	■Get1IndResource	IV-15
	■CountTypes		I-117
	■Count1Types		IV-15
	■GetIndType		I-117
	■Get1IndType		IV-15
	■CountResources	I-118
	■Count1Resources	IV-15
	■UniqueID		I-121
	■Unique1ID		IV-16

	関数名に "1" が付いたものは、リソースチェインの先頭(通常最後に開いた
	リソースファイル)のみを対象とした関数です。

	Handle	GetResource(ResType theType, short theID);
	Handle	Get1Resource(ResType theType, short theID);
	Handle	RGetResource(ResType theType, short theID);
			指定のリソースタイプ,IDのリソースを読込む

	Handle	GetNamedResource(ResType theType, ConstStr255Param name);
	Handle	Get1NamedResource(ResType theType, ConstStr255Param name);

	Handle	GetIndResource(ResType theType, short index);
	Handle	Get1IndResource(ResType theType, short index);
			指定リソースタイプの index 番目のリソースを得ます

	short	CountTypes(void);
	short	Count1Types(void);
			リソースファイルに含まれるタイプ数のを返します

	void	GetIndType(ResType *theType, short index);
	void	Get1IndType(ResType *theType, short index);
			リソースタイプの数までの数indexを渡すと、対応するリソ
			ースタイプが返されます

	short	CountResources(ResType theType);
	short	Count1Resources(ResType theType);
			指定リソースタイプのリソース数を返します

	short	UniqueID(ResType theType);
	short	Unique1ID(ResType theType);
/***LoadResource***/ ReleaseResource DetachResource ResourceManager
LoadResource(2m)

【名前】
	LoadResource    - リソースの読込み
	ReleaseResource - リソースのメモリからの解放
	DetachResource	-

【書式】
	■LoadResource		I-119
	■ReleaseResource	I-120
	■DetachResource	I-120

	void	LoadResource(Handle theResource);
	void	ReleaseResource(Handle theResource);
	void	DetachResource(Handle theResource);
/***GetResAttrs***/ GetResInfo SetResInfo AddResource SizeResource HomeResFile MaxSizeRsrc RsrcMapEntry SetResourceSize ResourceManager
GetResAttrs(2m)

【名前】
	GetResAttrs  - リソース属性の取得
	GetResInfo   - リソースType,ID,Nameの取得
	SetResInfo   - リソースID,Nameの設定
	AddResource  - リソースをリソースファイルに加えます
	SizeResource - リソースサイズの取得
	HomeResFile  - リソースのあるファイルの参照番号の取得
	MaxSizeRsrc  - リソース最大サイズの取得
	RsrcMapEntry -
	SetResourceSize	-

【書式】
	■GetResAttrs		I-121
	■GetResInfo		I-121
	■SetResInfo		I-122
	■AddResource		I-124
	■SizeResource		I-121
	■HomeResFile		I-117
	■MaxSizeRsrc		IV-16
	■RsrcMapEntry		IV-16
	■SetResourceSize	??

	short	GetResAttrs(Handle theResource);
###

	void	GetResInfo(Handle theResource, short *theID, ResType *theType,
							Str255 name);
	void	SetResInfo(Handle theResource, short theID,
						ConstStr255Param name);

	void	AddResource(Handle theResource, ResType theType, short theID,
			ConstStr255Param name);

		theDataと言うデータを持つリソースをリソースファイルに加えます


	long	SizeResource(Handle theResource);
	short	HomeResFile(Handle theResource);

	long	MaxSizeRsrc(Handle theResource);

	long	RsrcMapEntry(Handle theResource);

	void	SetResourceSize(Handle theResource, long newSize);
/***SetResAttrs***/ ChangedResource RmveResource UpdateResFile WriteResource SetResPurge ReadPartialResource WritePartialResource ResourceManager
SetResAttrs(2m)

【名前】
	SetResAttrs     - 属性の変更
	ChangedResource	-
	RmveResource    - カレントリソースファイルから外します
	UpdateResFile   - リソースファイルを変更します
	WriteResource   - ディスクに書き出す
	SetResPurge     - 
	ReadPartialResource  -
	WritePartialResource -

【書式】
	■SetResAttrs		I-122
	■ChangedResource	I-123
	■RmveResource		I-124
	■UpdateResFile		I-125
	■WriteResource		I-125
	■SetResPurge		I-126
	■ReadPartialResource  
	■WritePartialResource 

	void	SetResAttrs(Handle theResource, short attrs);

	void	ChangedResource(Handle theResource);
	void	RmveResource(Handle theResource);

	void	UpdateResFile(short refNum);
			refNumの参照番号を持つリソースファイルを変更します

	void	WriteResource(Handle theResource);
			リソース属性が正しくセットされているならディスクに
			書き出す

	void	SetResPurge(Boolean install);
			installがTRUEならリソースがパージされるときチェックが
			行なわれる

	void	ReadPartialResource(Handle theResource, long offset,
						void *buffer, long count);
	void	WritePartialResource(Handle theResource, long offset,
						const void *buffer, long count);
/***ResList***/ Res ResourceManager
ResList(2m)

【名前】
	ResList - リソースの一覧

【解説】
	全リソースの一覧	VI-13-4(Part2)

	Type	System	IM		意味
	-------+-------+---------------+---------------------------------------
	'actb'		V-278		Alert ボックスカラーテーブル
	'ADBS'		V-371		Apple Desktop Bus のサービスルーチン
	'alis'				Alias レコード
	'ALRT'		V-278		Alert ボックステンプレート
	'BNDL'		V-327		バンドル
	'CACH'	OS			RAMキャッシュコード
	'card'				ビデオカード名
	'cctb'		V-221		Control カラーテーブル
	'CDEF'		V-221		Control 定義関数
	'cdev'		V-327, 329
	'cicn'		V-65, 78, 80	カラー ICON
	'clut'		V-78, 81	カラー LUT
	'CNTL'				Control テンプレート
	'CODE'				コードセグメント
	'crsr'		V-63, 78	カラーカーソル
	'CURS'		I-476		カーソル
	'dctb'		V-278		Dialog カラーテーブル
	'ddev'				DataBase エクステンション
'dPro'
	'DITL' cdev	V-327
	'DITL'		V-278		Dialog/Alert のアイテムリスト
	'DLOG'		V-278		Dialog テンプレート
	'DRVR'				デスクアクセサリまたはその他のドライバ
	'DSAT'	OS			システムスタートアップアラートテーブル
	'eadr'				Ethernet のハードウエアアドレス
	'FCMT'	OS			"Get Info" コメント
	'fctb'		V-184		フォントカラーテーブル
	'FKEY'				Command+Shift+<数字>キーの組み合わせ
	'FMTR'	OS			3.5" ディスクのフォーマット用コード
	'FOBJ'	OS			MFSボリューム用のフォルダ情報
	'FOND'		V-181, 185	フォントファミリレコード
	'FONT'		V-181		ビットマップフォント
	'FREF' cdev	V-327		ファイルリファレンス
	'FRSV'	OS			システムフォントID
	'hdlg'				Help Dialog/Alert用
	'hfdr'				Help アプリケーションのアイコン用
	'hmnu'				Help アプリケーションのメニュー用
	'hovr'				Help Finderのヘルプをオーバーライドする
	'hrct'				Help Window の領域用
	'hwin'				Help 特定のウインドウと 'hrct' & 'hdlg'
								との結合
	'icl4'				ICON 32x32 4bits
	'icl8'				ICON 32x32 8bits
'ICN#' cdev	V-327		ICON 32x32 B&W
	'ICN#' cdev	I-476		ICON 32x32 B&W
	'ICON'		I-476		モノクロ ICON
	'ics#'				ICON 16x16 B&W
	'ics4'				ICON 16x16 4bits
	'ics8'				ICON 16x16 8bits
	'ictb'		V-278		Dialog カラーテーブルダイアログアイテム
	'INIT' 31	V-352		システムエクステンション
	'INTL' 0	V-288		インターナショナルリソース(Sys7で廃止)
	'INTL' 1	V-288
	'INTL' 2	V-288
	'itl0'		V-288		日付時刻フォーマット
	'itl1'		V-288		曜日および月の名称
	'itl2'		V-288		International Utilities Package の
								ソートフック
	'itl4'				ローカライズできるテーブルおよびコード
	'itlb'		V-288
	'itlc'		V-288
	'itlk'				'KCHR'に対応して, KeyTrans() が呼び出さ
					れる前に, 特定のキーの組み合わせを再定
					義する
	'KCAP'				物理的なキーボード定義
					(Key Capsデスクアクセサリが使用)
	'KCHR'		V-190		(ソフト的な)キーボードレイアウト
					仮想キーコードをキャラクタにマッピング
					する
	'kcs#'				'KCHR' 16x16 B&W  アイコン
	'kcs4'				'KCHR' 16x16 4bit アイコン
	'kcs8'				'KCHR' 16x16 8bit アイコン
	'KMAP'	OS	V-190		(ハードウエア的な)キーボードマッピング
					ローキーコードを仮想キーコードにマップ
	'KSWP'	OS			Script Manager の操作のための特別なキー
							の組み合わせの定義
	'mach' cdev	V-327, 328
	'LDEF'				リスト定義手続き
	'MBAR'		I-365		Menu バー
	'MBDF'	OS	V-250		デフォルトのメニュー定義手続き
	'mctb'		V-234		Menu カラー情報テーブル
	'MDEF's		V-248		Menu 定義手続き
	'MENU'		I-364		Menu 
	'MMAP'	OS			マウストラッキングコード
	'mntr'				Monitors コントロールパネル
	'NBPC'	OS			AppleTalk のバンドル
	'NFNT'		V-181, 183	ビットマップフォント
	'nrct' cdev	V-327
	'nrct'		V-329
	'PACK'				パッケージ
	'PAT '		I-476		パターン
	'PAT#'		I-476		パターンリスト
	'PDEF'	OS			プリント用コード
	'PICT'		I-476		PICT ピクチャ
	'pltt'		V-152		カラーパレット
	'POST'				PostScript リソース
	'ppat'		V-78, 79	ピクセルパターン
	'PREC'				プリントレコード
	'PTCH'	OS			ROM パッチコード
	'ROv#'	OS			オーバーライドするためのコード
	'ROvr'	OS			オーバーライドするためのコード(ROM用)
	'qdef'				クィアリ定義関数
	'qrsc'				クィアリリソース
	'SERD'	OS			RAM Serial Driver
	'SICN'				ICON スモール
	'SIZE'				アプリケーションのパーティションサイズ
	'STR '		I-476		文字列
	'STR#'		I-476		文字列リスト
	'scrn'		V-127		
	'sect'				セクションレコード
	'sfnt'				アウトラインフォント
	'snd '		V-476, 490	サウンド
	'snth'		V-476, 495	シンセサイザまたはモディファイア
'styl'
	'sysz'				SystemExtension が要求するシステム
					ヒープスペース
'TEXT'
	'vers'				バージョン番号
	'wctb'		V-201, 204	Window カラーテーブル
	'WDEF'				Window 定義関数
	'WIND'				Window テンプレート
	'wstr'				文字列(文字列長をワードで表現)

	リソースID
	-32768 ～ -16385	予約済み
	-16384 ～ -4065		他のシステムリソースに従属するシステムリソース
	-4064  ～ -4033		コントロールパネルが使用するための予約
				(V-323 "Control Panels" 参照)
	-4032  ～ -1		他のシステムリソースに従属するシステムリソース
				('SIZE' は例外に ID=-1)
	0      ～ 127		システムソフトウエア中のシステムリソースおよび
				定義手続き
	128    ～ 32767		アプリケーション用
